package com.yuw.mysorts;

public class TestDriver3 {

	public static void main(String[] args) {
		int[] arr = { 58, 34, 65, 89, 74, 1, 24 };
		System.out.println("选择排序之前：");
		printArr(arr);
		// 调用快速排序算法
		selectSort(arr);
		System.out.println("选择排序之后：");
		printArr(arr);

	}

	/**
	 * 选择排序
	 * 
	 * @param arr
	 *            被排序的数组
	 */
	private static void selectSort(int[] arr) {
		// 外层循环，控制当前选择出来的最值放在什么位置
		for (int i = 0; i < arr.length; i++) {
			// 内层循环，选择当前余下的数中的最值
			// 默认余下数中的定一个数是最值
			int min = arr[i];
			// 记录最值的下标
			int index = i;
			for (int j = i + 1; j < arr.length; j++) {
				// 选取最值
				if (arr[j] < min) {
					min = arr[j];
					index = j;
				}
			}

			// 找到最值之后，依次放到指定位置和最值位置进行交换
			int temp = arr[i];
			arr[i] = arr[index];
			arr[index] = temp;
		}
	}

	/**
	 * 打印数组内容
	 * 
	 * @param arr
	 *            被打印的数组
	 */
	private static void printArr(int[] arr) {
		System.out.println("数组内容为：");
		for (int i : arr) {
			System.out.print(" " + i);
		}
		// 换行
		System.out.println();
	}
}
